import { login } from '@/api/user'
import { delToken, getToken, setToken } from '@/utils/storage'
// import Vue from 'vue'
// import Vuex from 'vuex'

// Vue.use(Vuex)

export default {
    //开启命名空间
    namespaced: true,
    state() {
        return {
            token: getToken()
        }
    },

    mutations: {
        setUserToken(state, newToken) {
            state.token = newToken
                //把新的token写到浏览器中去
            setToken(newToken)
        },
        loginOut(state) {
            state.token = ''
            delToken()
        }
    },

    //异步操作放在actions中进行操作的
    actions: {
        // 设置一个函数提供给 前端页面进行异步调用
        async loginAction(context, obj) { //第一个参数固定为context，第二个参数是前端传过来的
            const res = await login(obj)

            //需要把登录后的token写进浏览器并且设置state中的token
            console.log(res)
            context.commit('setUserToken', res.data.token)
        }
    }
}